"""扩展类型系统

提供 TypeVar 约束类型，用于更精确的类型标注和约束
"""

from typing import TypeVar

# 数值类型约束
Number = TypeVar("Number", bound="Number")

# 整数类型约束
Integer = TypeVar("Integer", bound="Integer")

# 有符号整数类型约束
SignedInteger = TypeVar("SignedInteger", bound="SignedInteger")

# 无符号整数类型约束
UnsignedInteger = TypeVar("UnsignedInteger", bound="UnsignedInteger")

# 浮点数类型约束
FloatingPoint = TypeVar("FloatingPoint", bound="FloatingPoint")

# 容器类型约束
Container = TypeVar("Container", bound="Container")

# 可迭代类型约束
Iterable = TypeVar("Iterable", bound="Iterable")

# 可比较类型约束
Comparable = TypeVar("Comparable", bound="Comparable")

# 可哈希类型约束
Hashable = TypeVar("Hashable", bound="Hashable")

__all__ = [
    "Number",
    "Integer",
    "SignedInteger",
    "UnsignedInteger",
    "FloatingPoint",
    "Container",
    "Iterable",
    "Comparable",
    "Hashable",
]
